<!DOCTYPE html>
<html>
	<head>
		<title>Functions函数集合文件</title>
		<meta charset="UTF-8">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<script src="js/inc.js"></script>
	</head>
	<body>
		<fieldset>
                        <legend>Functions函数集合文件</legend>
                        <ol>
				<li>
					<h2 class="title_h2">文件规范</h2>
                                        1.函数文件都放在<code>application/functions</code>文件夹里面
                                        <br>2.函数名请用驼峰命名法。比如：myUserVip()
                                </li>
                                <li>
                                        <h2 class="title_h2">使用加载函数</h2>
                                        1.可以在任意地方使用下面的代码加载一个函数文件：
                                        <br>示例如下：
                                        <pre class="brush:php">
                                                Sr::functions('TestFunctions');
                                        </pre>
                                        我们可以看到上面有一个参数，这个是什么意思呢，是我们创建函数文件名(不带<b class="text_strong">.php</b>后缀)
                                        <br>例如:我们要创建函数文件名为UserFunctions.php，那么参数就要输入UserFunctions
                                        <br>2.如果函数文件在子文件夹下，引用的时候要带上<code>/</code>符号。
                                        <br>例如：如果你有一个函数文件<code>application/functions/vip/user.php</code>。
                                        <br>下面的代码可以引用它:
                                        <pre class="brush:php">
                                                Sr::functions('vip/user');
                                        </pre>
				</li>                                
				<li>
					<h2 class="title_h2">创建自己的函数文件</h2>
                                        下面我们自定义一个加载函数文件
                                        <br>1.新建Functions文件application/functions/TestFunctions.php
                                        <br>2.输入以下代码：
                                        <pre class="brush:php">
                                                &lt;?php

                                                function myFunction(){
                                                        return 'myFunction';
                                                } 
                                        </pre>
                                        3.新建控制器文件application/classes/Controller/Welcome.php
                                        <br>4.输入以下代码：
                                        <pre class="brush:php">
                                                &lt;?php

                                                class Controller_Welcome extends Soter_Controller {

                                                        public function do_functions() {
                                                                Sr::functions('TestFunctions');
                                                                echo myFunction();
                                                        }
                                                }  
                                        </pre>                                        
                                        5.浏览器访问：http://127.0.0.1/index.php/Welcome/functions.do
                                        <br>//将输出：myFunction
                                        <br>为什么会输出“<b>myFunction</b>”?
                                        <br>我们可以从上面例子看Controller_Welcome控制器类，
                                        <br>在do_functions方法里面做了加载TestFunctions函数文件。
                                        <br>然后输出TestFunctions函数文件中的myFunction函数,
                                        <br>所以浏览器才会显示“<b>myFunction</b>”。
                                </li>
                                <li>
                                        <h2 class="title_h2">如何自动加载函数文件</h2>
                                        在入口文件里面我们可以看到下面的配置： 
                                        <br><code>->addAutoloadFunctions(array('functions_auto'))</code>这是代表“<b>自动加载的函数文件</b>”的意思，我们可以看到里面有带一个参数，参数只能为数组。
                                        <br>那么<code>functions_auto</code>是什么呢？就是我们上面所讲函数文件名，我们还可以加载多个函数文件。
                                        <br>示例如下：
                                        <pre class="brush:php">
                                                ->addAutoloadFunctions(array(
                                                        'functions_file_name1',
                                                        'functions_file_name2',
                                                        'functions_file_name3',
                                                        ……
                                                ))
                                        </pre>
                                        那怎么知道有没有加载到呢？接下我们一起动手敲下代码。
                                        <br>步骤如下：
                                        <br>1.新建Functions文件application/functions/User.php
                                        <br>2.输入以下代码：
                                        <pre class="brush:php">
                                                &lt;?php

                                                function myUserName(){
                                                        return 'myUserName';
                                                } 
                                        </pre>
                                        3.新建Functions文件application/functions/Company.php
                                        <br>4.输入以下代码：
                                        <pre class="brush:php">
                                                &lt;?php

                                                function myJob(){
                                                        return 'myJob';
                                                } 
                                        </pre>
                                        5.修改入口文件
                                        <pre class="brush:php">
                                                ->addAutoloadFunctions(array(
                                                        'User',
                                                        'Company'
                                                ))
                                        </pre>
                                        6.新建控制器文件application/classes/Controller/Welcome.php
                                        <br>7.输入以下代码：
                                        <pre class="brush:php">
                                                &lt;?php
                                                
                                                class Controller_Welcome extends Soter_Controller {

                                                        public function do_functionsAuto() {
                                                                echo myUserName().'_'.myJob();
                                                        }
                                                }
                                        </pre>
                                        8.浏览器访问：http://127.0.0.1/index.php/Welcome/functionsAuto.do
                                        <br>//将输出：myUserName_myJob
                                        <br>说明有自动加载，我们为了区分myUserName函数和myJob函数在中间加了下划线。
                                        <br>所以输出myUserName_myJob。
                                </li>
                        </ol>
                </fieldset>
		<script src="js/inc.foot.js"></script>
	</body>
</html>
